gdk: Add gdk_window_set_pass_through
authorAlexander Larsson <alexl@redhat.com>
Mon, 8 Jun 2015 13:36:43 +0000 (15:36 +0200)
committerAlexander Larsson <alexl@redhat.com>
Mon, 15 Jun 2015 08:56:45 +0000 (10:56 +0200)
commit4c3eece6638aa36fbcd8379109dcb4e27323a306
treec84c9e853bef2325b9402253423f9960bab88610
parentccc4b192ec994ee06817fbf19ff8c662be8d995a
gdk: Add gdk_window_set_pass_through

An pass_through window is something you can draw in but does not
affect event handling. Normally if a window has with no event mask set
for a particular event then input events in it go to its parent window
(X11 semantics), whereas if pass_through is enabled the window below
the window will get the event. The later mode is useful when the
window is partially transparent. Note that an pass-through windows can
have child windows that are not pass-through so they can still get events
on some parts.

Semantically, this behaves the same as an regular window with
gdk_window_set_child_input_shapes() called on it (and re-called any
time a child is changed), but its far more efficient and easy to use.

This allows us to fix the testoverlay input stacking test.

https://bugzilla.gnome.org/show_bug.cgi?id=750568

https://bugs.freedesktop.org/show_bug.cgi?id=90917
gdk/gdkinternals.h
gdk/gdkwindow.c
gdk/gdkwindow.h